﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PTTK_HTTT_06.BUS;

namespace PTTK_HTTT_06.GUI.other
{
    public partial class MHQuanLy : UserControl
    {
        //hình nền
        private Bitmap bmpBackground = new Bitmap("img/btn_empty.png");
        public NHAN_VIEN nhanVien { get; set; }
        private List<BO_PHAN> boPhanList = null;

        public MHQuanLy()
        {
            InitializeComponent();
        }

        private void MHQuanLy_Load(object sender, EventArgs e)
        {
            boPhanList = BO_PHAN.LayDanhSach();
            KhoiTaoDanhSachCacNut();
        }

        #region tạo button
        private Button TaoButton(string btnName, string btnText)
        {
            Button btn = new Button();

            btn.BackColor = System.Drawing.Color.Transparent;
            btn.BackgroundImage = bmpBackground;
            btn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
            btn.FlatAppearance.BorderSize = 0;
            btn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
            btn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
            btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            btn.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            btn.ForeColor = System.Drawing.Color.Maroon;
            btn.Margin = new System.Windows.Forms.Padding(10);
            btn.Name = btnName;
            btn.Size = new System.Drawing.Size(130, 130);
            btn.TabIndex = 0;
            btn.Text = btnText;
            btn.UseVisualStyleBackColor = false;
            btn.Click += btn_Click;

            return btn;
        }

        
        #endregion

        #region Khởi tạo danh sách các nút
        private void KhoiTaoDanhSachCacNut()
        {
            //là admin thì hiển thị các nút này
            if (nhanVien.MaBoPhan == 0)
            {
                flp_main.Controls.Add(TaoButton("btnThemMonAn", "Thêm món ăn"));
                flp_main.Controls.Add(TaoButton("btnThemSanPham", "Thêm sản phẩm"));
                flp_main.Controls.Add(TaoButton("btnThemNhaCungCap", "Thêm nhà cung cấp"));
                flp_main.Controls.Add(TaoButton("btnThemNguyenLieu", "Thêm nguyên liệu"));
            }
            else
            {
                if (boPhanList != null){
                    //lấy bộ phận của nhân viên đang tham gia
                    BO_PHAN bp = boPhanList.Single(a => a.MaBoPhan == nhanVien.MaBoPhan);


                    switch (bp.TenBoPhan)
                    {
                        case "Bếp"://thuộc bộ phận bếp
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                flp_main.Controls.Add(TaoButton("btnLapThucDon", "Lập thực đơn"));
                                
                            }
                            //add button của nhân viên bộ phận bếp
                            flp_main.Controls.Add(TaoButton("btnLapPhieuYCNguyenLieu", "Lập phiếu YC nguyên liệu"));
                            flp_main.Controls.Add(TaoButton("btnLapBaoCao", "Lập báo cáo"));
                            break;


                        case "Kho"://thuộc bộ phận kho
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                
                                
                            }
                            //add button của nhân viên bộ phận kho
                            flp_main.Controls.Add(TaoButton("btnLenDSNguyenLieuDatHang", "Lên DS nguyên liệu đặt hàng"));
                            flp_main.Controls.Add(TaoButton("btnLapBaoCao", "Lập báo cáo"));
                            break;


                        case "Thu Ngân"://thuộc bộ phận thu ngân
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                //add button của trg bộ phận thu ngân
                                flp_main.Controls.Add(TaoButton("btnLapHoaDon", "Lập hóa đơn"));
                                flp_main.Controls.Add(TaoButton("btnLapTheKhachHang", "Lập thẻ khách hàng"));
                            }
                            //add button của nhân viên bộ phận thu ngân
                            break;


                        case "Quầy Bar / Giải Khát"://thuộc bộ phận quầy bar
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                
                            }
                            //add button của nhân viên bộ phận quầy bar
                            flp_main.Controls.Add(TaoButton("btnLapPhieuYCSanPham", "Lập phiếu YC sản phẩm"));
                            flp_main.Controls.Add(TaoButton("btnLapBaoCao", "Lập báo cáo"));
                            break;


                        case "Phục Vụ"://thuộc bộ phận phục vụ
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                //add button của nhân viên bộ phận phục vụ
                            }
                            //add button của nhân viên bộ phận phục vụ
                            break;

                        case "Quản Lý"://thuộc bộ phận quản lý
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                //add button của trg bộ phận quản lý
                                
                            }
                            //add button của nhân viên bộ phận quản lý
                            flp_main.Controls.Add(TaoButton("btnTinhLuongNhanVien", "Tính lương nhân viên"));
                            break;
                        case "Thu mua"://thuộc bộ phận thu mua
                            if (bp.TruongBoPhan == nhanVien.MaNhanVien)
                            {
                                //add button của trg bộ phận quản lý

                            }
                            //add button của nhân viên bộ phận quản lý
                            flp_main.Controls.Add(TaoButton("btnDatHangNguyenLieu", "Đặt hàng nguyên liệu"));
                            break;
                    }
                }
                
            }
        }
        #endregion

        #region xử lý sự kiện click cho button
        void btn_Click(object sender, EventArgs e)
        {
            OnClickButton((sender as Button).Name);
        }
        #endregion
        
        #region tạo sự kiện click button
        public event EventHandler ClickButton;
        private void OnClickButton(string btnName)
        {
            EventHandler handler = ClickButton;
            if (handler != null) handler(btnName, EventArgs.Empty);
        }
        #endregion

    }
}
